/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pagoda.engine;

import java.rmi.Remote;
import java.util.UUID;
import javax.script.ScriptEngine;
import org.w3c.dom.Node;
import pagoda.util.scripting.Expression;
import pagoda.util.scripting.Prototype;

/**
 *
 * @author kevin
 */
public interface TestAction extends Remote{

    public TestActionResult execute();
    public TestAction setParent(TestAction action);
    public TestAction getParent();
    

    public TestAction setEnabled(boolean enable);
    public TestAction setCondition(Expression<Boolean> condition);

    public TestAction setId(UUID id);
    public UUID getId();

    public TestAction setName(String name);
    public String getName();

    public TestAction setPath(String path);
    public String getPath();

    public TestAction setTestEngine(TestEngine engine);
    public TestEngine getTestEngine();

    public TestAction setScriptEngine(ScriptEngine engine);
    public ScriptEngine getScriptEngine();

    public TestAction setPrototype(Prototype bindings);
    public Prototype getBindings();

    public <T> Expression<T> buildExpression(String src);
    public <T> Expression<T> buildExpression(Node xmlnode);

}
